22 research outputs found

    A Distributed Operational Semantics for a Parallel Functional Language

    Get PDF
    We present an operational semantics for a functional parallel language with explicit process creation and implicit message-passing communication. The semantics is based on a distributed memory model and is effective for investigating the interplay between laziness and eagerness in the language, as well as for measuring speculative parallelism

    Continutation Semantics for Parallel Haskell Dialects.

    Get PDF
    The aim of the present work is to compare, from a formal semantic basis, the different approaches to the parallelization of functional programming languages. For this purpose, we define a continuation semantics model which allows us to deal with side-effects and parallelism. To verify the suitability of our model we have applied it to three programming languages that introduce parallelism in very different ways, but whose common functional kernel is the lazy functional language Haskell

    Relating function spaces to resourced function spaces.

    Get PDF
    In order to prove the computational adequacy of the (operational)natural semantics for lazy evaluation with respect to a standard denotational semantics, Launchbury defines a resourced denotational semantics. This should be equivalent to the standard one when given infinite resources, but this fact cannot be so directly established, because each semantics produces values in a different domain. The values obtained by the standard semantics belong to the usual lifted function space D = [D → D]⊥, while those produced by the resourced semantics belong to [C → E] where E satisfies the equation E = [[C → E] → [C → E]]⊥ and C (the domain of resources) is a countable chain domain defined as the least solution of the domain equation C = C⊥. We propose a way to relate functional values in the standard lifted function space to functional values in the corresponding resourced function space. We first construct the initial solution for the domain equation E = [[C → E] → [C → E]]⊥ following Abramsky’s construction of the initial solution of D = [D → D]⊥. Then we define a “similarity” relation between values in the constructed domain and values in the standard lifted function space. This relation is inspired by Abramsky’s applicative bisimulation. Finally we prove the desired equivalence between the standard denotational semantics and the resourced semantics for the lazy λ-calculus

    Rule Formats for Nominal Process Calculi

    Get PDF
    The nominal transition systems (NTSs) of Parrow et al. describe the operational semantics of nominal process calculi. We study NTSs in terms of the nominal residual transition systems (NRTSs) that we introduce. We provide rule formats for the specifications of NRTSs that ensure that the associated NRTS is an NTS and apply them to the operational specifications of the early and late pi-calculus. We also explore alternative specifications of the NTSs in which we allow residuals of abstraction sort, and introduce translations between the systems with and without residuals of abstraction sort. Our study stems from the Nominal SOS of Cimini et al. and from earlier works in nominal sets and nominal logic by Gabbay, Pitts and their collaborators

    Back-track to the future, una experiencia de gamificación en la universidad

    Get PDF
    A pesar de nuestros esfuerzos como docentes para desarrollar material y herramientas que sean útiles para el aprendizaje de nuestros alumnos, venimos observando desmotivación por parte de los estudiantes hacia las asignaturas que impartimos. Algunos se limitan a hacer lo imprescindible para aprobar la asignatura y muchos otros abandonan ante el esfuerzo que les supone utilizar dichas herramientas. En el presente artículo presentamos nuestra experiencia al utilizar técnicas de gamificación para motivar a alumnos de segundo curso de grado universitario en el aprendizaje de asignaturas relacionadas con la programación de algoritmos.Despite our efforts as teachers to develop material and tools which are useful for our students to learn, we observe a great demotivation from them towards the subjects we teach. Some students just do the minimum to pass the course, and many others abandon due to the effort involved in using these tools. In this article we present our experience using gamification techniques to motivate second-year university students to learn subjects related to algorithm programming

    La gamificación en la educación universitaria: aplicación a asignaturas de programación

    Get PDF
    Informe sobre la experiencia de aplicar técnicas de gamificación en la asignatura “Estructura de Datos y Algoritmos”, obligatoria de 2º curso en los grados impartidos en la Facultad de Informática de la UCM

    Dealing Denotationally With Stream-based Communication

    No full text
    We define a denotational semantics for a kernel-calculus of the parallel functional language Eden. We choose continuations to deal with side-effects (process creation and communication) in a lazy context. The calculus includes streams for communication, and their modelization by a denotational semantics is not direct because a stream may be infinite

    An Operational Semantics for the Parallel Language Eden.

    No full text
    The functional parallel language Eden — suitable for the description of parallel and concurrent algorithms in a distributed setting — is an extension of Haskell with a set of coordination features. In this paper we present a formal operational semantics for the kernel of Eden, or more precisely, for a λ-calculus widened with explicit parallelism and potentially infinite communication channels. Eden overrides the lazy nature of Haskell on behalf of parallelism. This interplay between laziness and eagerness is accurately described by the semantics proposed here, which is based on Launchbury's natural semantics for lazy evaluation, and is expressed through a two-level transition system: a lower level for the local and independent evaluation of each process, and an upper one for the coordination between all the parallel processes in the system. As processes are created either under demand or in a speculative way, different scheduling strategies are possible — ranging from a minimal one that only allows the main thread to evolve, to a maximal one that evolves in parallel every active binding
    corecore